//-----------------------------------------------------------------------
//  PP11_2.java   作者：唐才铭
//
//  修改编程项目PP11.1的解决方案，当异常抛出时捕获它并处理。
//  处理方式：输出适当信息并继续处理后面的字符串。
//-----------------------------------------------------------------------

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class PP11_2 {
    public static void main(String[] args) {
        String line;
        int error = 0, right = 0;
        Scanner scanner = new Scanner(System.in);
        StringTooLongException problem = new StringTooLongException("");
        System.out.println("请输入字符串（键入DONE可结束该项操作）");
        line = scanner.nextLine();
        List lines = new LinkedList();
        while (!line.equals("DONE")) {
            try {
                if (line.length() <= 20) {
                    lines.add(line);
                    right++;
                } else {
                    throw problem;
                }
            } catch (StringTooLongException Exception) {
                error++;
                System.out.println("错误！你输入的以下字符过长：" + line);
            }

            System.out.println("请输入字符串（键入DONE可结束该项操作）");
            line = scanner.nextLine();
        }
        System.out.println("正确的字符串个数为：" + right);
        System.out.println("错误的字符串个数为：" + error);
        String[] intArray = (String[]) lines.toArray(new String[0]);
        for (int index = 0; index < intArray.length; index++) {
            System.out.print("\r\n正确。你输入的以下字符有效：" + intArray[index]);
        }
    }
}
